Roadmap: settings wiring pass (3 of 5 Appearance settings don't reach the UI) - #273
Merged
Conversation
…t reach the UI Measured in a real browser rather than inferred, after a question about whether text respects the global size setting. The store->DOM plumbing is fine (lib/appearance.ts, called from main.tsx and settings-store.ts). What's missing is anything consuming the result. Theme works Accent colour works Font size partial, and actively wrong at "small" Card density inert Animation speed inert Font size: --base-font-size lands on html, so rem utilities DO scale -- text-sm measures 10.5 / 12.25 / 14px across the three settings. But 247 arbitrary text-[Npx] values across 63 files are absolute and never move. At "small" that inverts the hierarchy: text-sm drops to 10.5px while a caption pinned at text-[11px] stays LARGER than the body text it sits under. Card density / animation speed: the chain runs store -> data attribute -> CSS var -> .card-padding / .card-gap / .transition-appearance helper classes, and dies at the last hop -- those three classes are used by zero components. Filed under Important; renumbered the section and the suggested order.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs-only. Files the settings wiring pass, with the findings measured in a real browser rather than inferred.
What prompted it
A question about whether all text respects the global text-size setting. The short answer is no, and the reason is more specific than "the sizes are inconsistent".
What's actually broken
The store→DOM plumbing is fine —
lib/appearance.ts, called frommain.tsxon boot and fromsettings-store.tson change. What's missing is anything consuming the result.--accent)Font size
--base-font-sizelands onhtml, so rem-based utilities do scale. Measured:htmltext-smtext-xstext-[11px]But 247 arbitrary
text-[Npx]values across 63 files (144×text-[10px], 96×text-[11px]) are absolute and never move. At "small" that inverts the hierarchy —text-smdrops to 10.5px while a caption pinned attext-[11px]renders larger than the body text it's meant to sit under.Fix: add rem steps to the
@themeblock inindex.css(the scale wants something belowtext-xs) and convert the 247 uses.Card density / animation speed
The chain is store →
data-card-density/data-animation-speed→--card-padding/--card-gap/--transition-duration→.card-padding/.card-gap/.transition-appearance.It dies at the last hop: those three helper classes are used by zero components. Either apply them on the card/panel primitives, or drop the settings rather than shipping controls that do nothing.
Note on process
I got this wrong twice while investigating before measuring it — first concluding the attributes were never set (my grep looked for the literal
data-font-size; the code usesdataset.fontSize), then that--base-font-sizewas onbodyrather thanhtml. The table above is fromgetComputedStylein the running app.